new
res model.sav
;--------------------------------
range name soil_out group 1
range name soil_in group 2
range name exca1 group 2 z=(-1.0,0.0)
range name exca2 group 2 z=(-4.3,-1.0)
range name exca3 group 2 z=(-7.6,-4.3)
range name exca4 group 2 z=(-10.9,-7.6)
range name exca5 group 2 z=(-14.2,-10.9)
range name exca6 group 2 z=(-17.5,-14.2)
range name exca7 group 2 z=(-20.0,-17.5)
sel group wall range sel liner
sel group zc1 range sel beam z=(-1.1,-0.9)
sel group zc2 range sel beam z=(-4.4,-4.2)
sel group zc3 range sel beam z=(-7.7,-7.5)
sel group zc4 range sel beam z=(-11.0,-10.8)
sel group zc5 range sel beam z=(-14.3,-14.1)
sel group zc6 range sel beam z=(-17.6,-17.4)
sel group lizhu range sel pile
;==========initial state==========
model elas
prop y=40e6 p=0.35 density=1.8e3 
set gravity=(0,0,-10)
ini szz 0e3 gradient=(0,0,18e3)
ini sxx 0e3 gradient=(0,0,9e3)
ini syy 0e3 gradient=(0,0,9e3)
;-----------------------Modified cam-clayģ-------------------------------
model cam-clay
;cam-clayģ趨嵯ģ(EGK)ȲԶ
;cam-clayģȷ8ģͲ(-)ֲpropertyеĳʼcv(v0)shear
def install_prop
  pnt=zone_head
  loop while pnt # null
    abs_sxx=abs(z_sxx(pnt))          ;|sxx|
    abs_syy=abs(z_syy(pnt))          ;|syy|
    abs_szz=abs(z_szz(pnt))          ;|szz|
    p0=(abs_sxx+abs_syy+abs_szz)/3.0  
    ;cam-clayģpqΪֵp0ɳӦȷcam-clamģͲǰ֪Ӧ
    p0_effective=p0-z_pp(pnt)            ;p0'
    q0=sqrt(((abs_sxx-abs_syy)^2+(abs_syy-abs_szz)^2+(abs_szz-abs_sxx)^2)*0.5)
    z_prop(pnt,'mm')=6.0*sin(fai*degrad)/(3.0-sin(fai*degrad))  ;עǺ轫ǶתΪ  
    temp1=q0/(z_prop(pnt,'mm')*p0_effective)
    pc0=p0_effective*(1.0+temp1^2)*OCR  ;Ч̽ѹȷ
    v0=1.0+_e0
    z_prop(pnt,'cam_cp')=p0_effective    ;ҪȷЧӦʾ"Mean effective pressure is negative"
    z_prop(pnt,'mpc')=pc0              ;
    z_prop(pnt,'poisson')=p_ratio        ;
    z_prop(pnt,'lambda')=_lambda        ;
    z_prop(pnt,'kappa')=_kappa          ;
    z_prop(pnt,'mp1')=_mp1            ;
    z_prop(pnt,'mv_l')=v0+_lambda*ln(2.0*_cu/(z_prop(pnt,'mm')*_mp1))+(_lambda-_kappa)*ln(2.0)    ;
    z_prop(pnt,'bulk_bound')=100*40e6    ;
    ;z_prop(pnt,'bulk_bound')=100*(s_mod+4.0/3.0*s_mod)  ;ģϽKmax
    ;ԶȷKmaxʱ֡property badʾ
    ;ΪϽԼӰ죬ڲʾKmax̫СԿ£ȡֵԽСԽ
    pnt=z_next(pnt)
  endloop
end
set p_ratio=0.35 fai=34.5 _lambda=0.14 _kappa=0.01 _mp1=1e3 _e0=1.2 _cu=10e3 OCR=1.0  ;ģ
install_prop
;==============ʵ彨Ӵ========
gen sepa 2
;gen merge 1e-3 range z=(-38.1,-37.9)
attach face 
interface 1 face range group 1 x=(99.9,100.1)
interface 1 face range group 1 y=(9.9,10.1)
inter 1 maxedge=1.0
interface 1 prop kn=24e9 ks=24e9 tens=0.0 coh=0.0 fric=14.0 bslip=on sbratio=20  ;Ӵ
pl sur lcyan ou on  range group 2 not
;pl add atta 
pl add inter ou on
set outp attach_interface.jpg
;pl ha
;=======ṹԪֲ귽=========
cyc 0
sel node fix lsys
;-------ṹԪ߽----------
sel node fix x yr zr range sel liner x=(-0.1,0.1)
sel node fix x yr zr range sel liner y=(-0.1,0.1)
sel node fix y x z xr zr range sel beam y=(-0.1,0.1)
sel node ini xpos add 0.0 range sel liner
sel node ini xpos add 0.0 range sel pile
;============ʵ߽==============
fix x range x=(-0.1,0.1)
fix x range x=(199.9, 200.1)
fix y range y=(-0.1,0.1)
fix y range y=(109.9, 110.1)
fix x y z range z=(-80.1,-79.9)
sel liner prop iso=(24e9,0.2) thick=0.8 density =2.5e3 cs_ncut=1e6 cs_nk=24e9 cs_scoh=20e6 &
           cs_scohres=0.0 cs_sfric=14.0 cs_sk=24e9 slide=on slide_tol=1e-3 range group wall
sel pile prop emod=24e9 nu=0.2 xcarea=0.503 xciz=2.01e-2 xciy=2.01e-2 xcj=4.02e-2 &
density=2.5e3 perim=2.513 cs_scoh=25.1e3 cs_sfric=14.0 cs_sk=24e9 & 
cs_ncoh=1e10 cs_nfric=0.0 cs_ngap=off cs_nk=24e9 slide=on range group lizhu
;עcs_scoh=tau_max*perimeter
sel beam prop emod=1e-10 nu=0.3 density=0.0 ran sel beam
;------------ǽԼ------------------------------
sel dele link range sel liner z=(-38.1,-37.9)
sel link net range sel liner z=(-38.1,-37.9)
;-----------׮Լ-------------------------------
sel dele link range sel pile z=(-60.1,-59.9)
sel link net range sel pile z=(-60.1,-59.9)

hist unbal
set hist_rep 20
pl  hist 1
set mech damp combined
sel set damp combined
step 2000

save initial.sav
;===========ڼ=====================
ini xdisp=0.0 ydisp=0.0 zdisp=0.0
ini xvel=0.0 yvel=0.0 zvel=0.0
sel node ini xdisp=0.0 ydisp=0.0 zdisp=0.0
sel node ini xvel=0.0 yvel=0.0 zvel=0.0
ini state=0
pl se ba wh
;==========ɾ=============
atta dele range z=(-37.9,0.1)
;=========ȵΧǽӴʵ״̬========
sel liner prop iso=(24e9,0.2) thick=0.8 density =2.5e3 cs_ncut=0.0 cs_nk=24e9 &
cs_scoh=20e3 cs_scohres=0.0 cs_sfric=14.0 cs_sk=24e9 slide=on slide_tol=1e-3 range group wall
pl hist 1
;==========1ο==========
model null range exca1
step 3000
sel beam prop emod=24e9 nu=0.2 density=2.5e3 range group zc1
save stage1.sav
;==========26ο==========
def staged_excavation  
  loop n(2,6)
    exca='exca'+string(n)
    zc='zc'+string(n)
    stage='stage'+string(n)+'.sav'
    command
      model null range exca
      step 3000
      sel beam prop emod=210e9 nu=0.3 density=7.8e3 range group zc
      save stage   ;м״̬ɲ
    endcommand
  endloop
end
staged_excavation
;==========7ο==========
model null range exca7
step 3000
save stage7.sav
